<!DOCTYPE html>
<html lang="zh_CN">
<head>
    <#assign currentMenu="region"/>
    <#include "../common/header.ftl">
    <link rel="stylesheet" href="/js/plugins/treeView/bootstrap-treeview.min.css" type="text/css"/>
    <script type="text/javascript" src="/js/plugins/treeView/bootstrap-treeview.min.js"></script>
    <script type="text/javascript">
        $(function () {
            // 页面加载完毕马上克隆出一个表格中的tr, 用于右侧表格填充数据
            var tr = $("tbody tr:first").clone();

            // 页面加载完毕马上发送请求加载所有的根区域
            $.get("/region/listMenus.do", {type: "treeView"}, function (rootMenus) {
                console.log(rootMenus);
                $("#treeView").treeview({
                    color: "#428bac",
                    showTags: true,
                    data: [{text: "所有区域", nodes: rootMenus}],
                    lazyLoad: function (node) {// 配置懒加载全局参数, 点击父区域加载所有的子区域
                        // node就是当前点击的节点
                        console.log(node);
                        // 发送ajax请求到查询所有的子区域
                        $.get("/region/listMenus.do", {parentId: node.id, type: "treeView"}, function (childMenus) {
                            console.log(childMenus);
                            // 将获取的子区域节点拼接在父区域节点下面
                            $('#treeView').treeview('addNode', [childMenus, node]);
                        });
                    },
                    // 点击节点触发事件  event: 事件源, node: 点击的当前节点
                    onNodeSelected: function (event, node) {
                        // 显示表格, 页面开始状态为隐藏状态
                        $("table").css("display", "");
                        // 发送ajax请求进行查询当前节点区域下的所有子节点区域
                        $.get("/region/listMenus.do", {parentId: node.id, type: ""}, function (childMenus) {
                            // 填充数据
                            // 先清空tbody, 在进行数据填充

                            $("tbody").html("");
                            // 遍历childMenus, 然后在将值填充到tr中的td
                            $.each(childMenus, function (index, item) {
                                // 创建一个临时的tr变量, 用于填充数据
                                var row = tr.clone();
                                // 序号
                                row.find("td")[0].innerHTML = index + 1;
                                row.find("td")[1].innerHTML = item.name;
                                // 将row拼接到tbody中
                                row.appendTo($("tbody"));

                                // 给a标签绑定一个自定义属性, 点击做编辑时回显数据
                                var json = {
                                    "id": item.id,
                                    "name": item.name,
                                    "state": item.state,
                                    "parentName": item.parentName,
                                    "parentId": item.parentId
                                };
                                row.find("a").attr("data-json", JSON.stringify(json));
                                console.log(row.find("a"));
                            });
                        });
                    }
                });
            });

            // 给添加区域按钮绑定事件
            $("#inputBtn").click(function () {

                // 弹出模态框
                showModel();

                // 获取当前被选中的节点
                // var node = $('#treeView').treeview('getSelected');
                //
                // console.log(node[0]);
                // var id = $(node[0]).prop("id");
                // console.log($(node[0]).prop("text"));

                // //    被选中的根区域有可能是所有区域, 所以要进行判断
                //  if (node){
                //      // 上级区域
                //      $("#editForm input[name='parent.name']").val($(node[0]).prop("text"));
                //
                //      // 上级id
                //      $("#editForm input[name='parent.id']").val($(node[0]).prop("id"));
                //      // 调用弹出模态框
                //  } else {
                //      // 上级区域--所有区域
                //      $("#editForm input[name='parent.name']").val($(node[0]).prop("所有区域"));
                //      // 清除掉id
                //      $("#editForm input[name='parent.id']").val($(node[0]).prop(""));
                //  }
            });

            // 给模态框中的保存按钮绑定事件
            $(".submitBtn").click(function () {
                // 提交表单
                $("#editForm").submit();
            });

            // 修改编辑指定区域
            // 由于表格中的所有数据都是使用动态生成的, 所以修改操作的按钮需要使用动态绑定
            // 如何获取数据并回显数据到模态框中--在显示表格的时候就给动态生成的a标签绑定一个自定义属性--包含所有的数据

            // 参数1: 绑定的时间. 参数2: 选择器, 参数3:回调函数
            $("tbody").on("click", ".inputBtn", function () {
                // 获取标签中保存的用于回显的数据
                var json = $(this).data("json");
                // 显示模态框
                showModel(json);

            })

            // 定义弹出模态框的函数
            function showModel(json) {
                // 弹出前先清空模态框, 防止缓存
                $("#editForm input").val('');

                // 如果是编辑操作, 则调用方法的时候传入json参数, 用于回显编辑数据
                if (json) {
                    $("#editForm input[name='id']").val(json.id);
                    $("#editForm input[name='name']").val(json.name);
                    $("#editForm select[name='state']").val(json.state);
                }

                // 设置模态框中的上级区域和值
                // getSelected获取获取出来是一个数组. 所以node是一个数组
                var node = $('#treeView').treeview('getSelected')[0];
                if (node) {
                    // 上级区域---这里在取当前选取的节点的时候要用node[0]
                    $("#editForm input[name='parent.name']").val($(node).attr("text"));
                    var a = $("#editForm input[name='parent.name']").val();
                    // 上级区域id
                    $("#editForm input[name='parent.id']").val($(node).attr("id"));
                } else {
                    // 如果没有选择节点, 则默认上级区域是所有的区域
                    // 上级区域--所有区域
                    $("#editForm input[name='parent.name']").val("所有区域");
                }
                // 弹出模态框
                $("#inputModal").modal('show');
            }
        });
    </script>
</head>
<body>
<div class="container " style="margin-top: 20px">
    <#include "../common/top.ftl">
    <div class="row">
        <div class="col-lg-3">
            <#include "../common/menu.ftl">
        </div>
        <div class="col-lg-9">
            <div class="row">
                <div class="col-lg-12">
                    <h1 class="page-head-line">旅游区域管理</h1>
                </div>
            </div>

            <div class="row">
                <div class="col-lg-12">
                    <a href="javascript:;" class="btn btn-success" id="inputBtn">
                        <span class="glyphicon glyphicon-plus"></span> 添加区域
                    </a>
                </div>
            </div>

            <div class="row">
                <div class="col-lg-4">
                    <div id="treeView"></div>
                </div>
                <div class="col-lg-8">
                    <table class="table table-striped table-hover" style="display: none">
                        <thead>
                        <tr>
                            <th>序号</th>
                            <th>区域</th>
                            <th>操作</th>
                        </tr>
                        </thead>
                        <tbody>
                        <tr>
                            <td>xx</td>
                            <td>xx</td>
                            <td>
                                <a href="javascript:" class="btn btn-info btn-xs inputBtn">
                                    <span class="glyphicon glyphicon-pencil"></span> 修改
                                </a>
                            </td>
                        </tr>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</div>

<div id="inputModal" class="modal" tabindex="-1" role="dialog">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span>
                </button>
                <h4 class="modal-title">编辑</h4>
            </div>
            <div class="modal-body">
                <form id="editForm" class="form-horizontal" method="post" action="/region/saveOrUpdate.do">
                    <input type="hidden" name="id" value=""/>
                    <div class="form-group">
                        <label class="col-sm-4 control-label">区域名称</label>
                        <div class="col-sm-6">
                            <input type="text" class="form-control" name="name" placeholder="请输入区域名称">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-4 control-label">上级区域</label>
                        <div class="col-sm-6">
                            <input type="text" class="form-control" name="parent.name" readonly/>
                            <input type="hidden" class="form-control" name="parent.id"/>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-4 control-label">设为推荐</label>
                        <div class="col-sm-6">
                            <select name="state" class="form-control">
                                <option value="0">普通</option>
                                <option value="1">推荐</option>
                            </select>
                        </div>
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <a href="javascript:;" class="btn btn-success submitBtn" aria-hidden="true">保存</a>
                <a href="javascript:;" class="btn btn-info" data-dismiss="modal" aria-hidden="true">关闭</a>
            </div>
        </div>
    </div>
</div>
</body>
</html>